/*
 * httphandleexecutor.h
 * 负责组装职责链，与执行职责链
 *  Created on: Apr 26, 2009
 *      Author: kuncai
 */

#ifndef HTTPHANDLEEXECUTOR_H_
#define HTTPHANDLEEXECUTOR_H_
#include <assert.h>
#include "httprequest.h"
#include "httpresponse.h"
#include "httphandle.h"
#include "httphandlefoundfile.cpp"
#include "httphandlelastmodified.cpp"
#include "httphandleifmodifiedsince.cpp"
#include "httphandlecoding.cpp"
#include "httphandlecharset.cpp"

class HttpHandleExecutor{
	public:
		static HttpHandleExecutor* Create();
		int initGETChain();
		void executor(HttpRequest* httpRequest, HttpResponse* httpResponse);
		~HttpHandleExecutor();
	private:
		HttpHandleExecutor();	
		void GETChainHandle(HttpRequest* httpRequest, HttpResponse* httpResponse);	
	private:
		HttpHandle *GETChain;
		static HttpHandleExecutor* httpHandleExecutor;	
};

#endif /* HTTPHANDLEEXECUTOR_H_ */
